home *** CD-ROM | disk | FTP | other *** search
/ Freelog 100 / FreelogNo100-NovembreDecembre2010.iso / Musique / jokosher / jokosher_setup_0.11.4.exe / {app} / extensions / jokosher-dbus.py < prev    next >
Text File  |  2009-01-08  |  1KB  |  54 lines

  1. import Jokosher.Extension
  2. import gobject
  3. import dbus
  4. import dbus.service
  5. #if we are using the old version of dbus, we need dbus's glib too.
  6. if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
  7.     import dbus.glib
  8.  
  9. # Extension meta information
  10. EXTENSION_NAME = "Jokosher DBus API"
  11. EXTENSION_DESCRIPTION = "Allows other processes to call Jokosher extension API functions using DBus"
  12. EXTENSION_VERSION = "0.1"
  13.  
  14. # Extension constants
  15. JOKOSHER_DBUS_PATH = "/org/gnome/Jokosher"
  16. JOKOSHER_DBUS_NAME = "org.gnome.Jokosher"
  17.  
  18. class HelloWorldObject(dbus.service.Object):
  19.     def __init__(self, bus_name, object_path=JOKOSHER_DBUS_PATH):
  20.         dbus.service.Object.__init__(self, bus_name, object_path)
  21.  
  22.     ## DBus API Methods ##
  23.     #_______________________________________
  24.     @dbus.service.method(JOKOSHER_DBUS_NAME)
  25.     def play(self):
  26.         API.play()
  27.     
  28.     @dbus.service.method(JOKOSHER_DBUS_NAME)    
  29.     def stop(self):
  30.         API.stop()
  31.         
  32.     ## DBus API Signals ##
  33.     #_______________________________________
  34.     @dbus.service.signal(JOKOSHER_DBUS_NAME)
  35.     def signal_play(self, message):
  36.         pass    
  37.     
  38.     @dbus.service.signal(JOKOSHER_DBUS_NAME)
  39.     def signal_stop(self, message):
  40.         pass
  41.  
  42.  
  43. #initialize the extension
  44. def startup(api):
  45.     global API, dbusObject
  46.     API = api
  47.     session_bus = dbus.SessionBus()
  48.     bus_name = dbus.service.BusName('org.gnome.Jokosher', bus=session_bus)
  49.     dbusObject = HelloWorldObject(bus_name)
  50.  
  51. #disable/shutdown the extension
  52. def shutdown():
  53.     #TODO, remove the org.gnome.Jokosher dbus service
  54.     pass